<?php

namespace SGBD\Controller;

class PersonnesController extends \SGBD\AbstractController
{
    public function indexAction()
    {
        $personnes = $this->db->getAllPersonnes('Prenom, Nom');
        $personnes = array_map(array($this, 'toRow'), $personnes);

        $this->app->render(
            'info/personnes/index.html',
            array('personnes' => $personnes)
        );
    }

    public function viewAction($numeroPersonne)
    {
        $this->app->render(
            'info/personnes/view.html',
            array('personne' => $this->db->getPersonne($numeroPersonne))
        );
    }

    public function newAction($numeroEquipe)
    {
        $equipe = $this->db->getEquipe($numeroEquipe);
        $this->app->render(
            'info/personnes/new.html',
            array('equipe' => $equipe)
        );
    }

    public function createAction($numeroEquipe)
    {
        $post = $this->app->request()->post();

        $personne = $this->db->createPersonne(
            $post['Nom'], $post['Prenom'], $post['Adresse'], $post['Date_Naissance']
        );

        // Si tout va bien...
        $url = $this->app->urlFor(
            'equipe_view', array('numero_equipe' => $numeroEquipe)
        );
        $this->app->redirect($url);
    }

    public function editAction($numeroPersonne) {
        $personne = $this->db->getPersonne($numeroPersonne);
        $this->app->render('info/personnes/new.html', array('personne' => $personne));
    }

    public function updateAction($numeroPersonne) {
        $post = $this->app->request()->post();
        $personne = $this->db->updatePersonne(
            $numeroPersonne, $post['Nom'], $post['Prenom'],
            $post['Adresse'], $post['Date_Naissance']
        );
        $url = $this->app->urlFor('personne_view', array('numero_personne' => $numeroPersonne));
        $this->app->redirect($url);
    }

    public function deleteAction($numeroPersonne) {
        $this->db->deletePersonne($numeroPersonne);
        $this->app->redirect($this->app->urlFor('personnes_index'));
    }

    protected function toRow($personne) {
        $url = $this->app->urlFor(
            'personne_view',
            array('numero_personne' => $personne['Numero_Personne'])
        );

        $p2 = $personne;

        $p2['Nom'] .= ', ' . $personne['Prenom'];
        $p2['Nom'] = '<a href="' . $url . '">' . $p2['Nom'] . '</a>';

        unset($p2['Prenom']);
        unset($p2['Numero_Personne']);

        return $p2;
    }
}